package com.intramirror.product.service;

import com.intramirror.product.entity.Product;
import com.intramirror.product.entity.Spu;
import com.intramirror.product.entity.SpuAggregateLog;
import com.intramirror.product.entity.SpuExceptionProduct;
import java.util.List;
import java.util.Map;

public interface ISpuService {
    Spu getSpuById(Long spuId);

    List<Map<String, Object>> getSpuListByCond(Map<String, Object> condMap);

    void deleteSpu(Long spuId);

    int deleteSpus(List<Long> spuIdList);

    Spu getSpuByDesignerAndColorCode(String designerId, String colorCode);

    void updateSpuById(Spu spu);

    void saveAggregateLog(SpuAggregateLog sal);

    boolean dealBoutiqueImg(Long srcSpuId, Long targetSpuId, Long productId);

    String dealDescImg(Spu spu);

    String dealCoverImg(Spu spu);

    void updateSpu(Spu spu);

    void unbindProductSpu(Long spuId, Long productId);

    Map<String, Object> countSpu(Map<String, Object> condMap);

    Spu findExistsSpuByDesignerId(String designerId);

    List<String> sImgToList(String sImg);

    Spu exactMatchWithExistsSpu(Product product);

    List<Spu> inexactMatchWithExistsSpu(Product product);

    void addSpuExceptionProduct(Long userId, SpuExceptionProduct spuExceptionProduct);

    void processSpuWithSeason();

    void processOneSpuWithSeason(Spu spu);

    void rebindingProductSpu(Product product, Spu spu);
}
